/*
 * CommandInterpreter.h
 *
 *  PEREIRA, FERNANDO ROQUE
 *  91610
 *
 *  Entidad encargada de interpretar los comandos que el servidor envia al cliente
 */

#ifndef COMMANDINTERPRETER_H_
#define COMMANDINTERPRETER_H_

#include <map>
#include <string>
#include "Command.h"

/* TODO: Lista de comandos: (Dividir en emisor y receptor)
 * 			OK
 * 			FAIL
 * 			GET-FILE-LIST (todos los archivos del repo)
 * 			GET #nombreArchivo (cliente envia para que le pase la data para actualizar)
 * 			POST #nombreArchivo (el cliente le manda esto al server para que actualice su repo
 *			Necesitamos para las respuestas del server en cuanto a GET
 *
 *			NOTIFY #nombreArchivo #data ¿#hash?
 */

class CommandInterpreter {
		// TODO: Tener un Functor como valor del map
		std::map<std::string, Command*> comandos;

	public:
		CommandInterpreter();
		~CommandInterpreter();

		// TODO: Command getComando(std::string& instruccion);
};

#endif
